﻿#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
//1:
//KiKi想知道一个n阶方矩是否为上三角矩阵，请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵，
//主对角线为从矩阵的左上角至右下角的连线。
//
//输入描述：
//第一行包含一个整数n，表示一个方阵包含n行n列，用空格分隔。(2≤n≤10)
//
//从2到n + 1行，每行输入n个整数（范围 - 231~231 - 1），用空格分隔，共输入n * n个数。
//
//输出描述：
//一行，如果输入方阵是上三角矩阵输出"YES"并换行，否则输出"NO"并换行。


int main()
{
    int n = 0;
    scanf("%d", &n);
    getchar();
    int arr[n][n];
    int row = 0;
    int col = 0;
    int count = 0;//统计主对角线上方0的个数，如果全是0，就不是上三角矩阵
    for (row = 0; row < n; row++)
    {
        for (col = 0; col < n; col++)
        {
            scanf("%d", &arr[row][col]);
            //判断下三角是否都是0
            if (row > 0)
            {
                if (col < row)
                {
                    if (arr[row][col] != 0)
                    {
                        printf("NO\n");
                        return 0;
                    }
                }
            }
            //统计主对角线上方的0的个数
            if (col > row)
            {
                if (arr[row][col] == 0)
                {
                    count++;
                }
            }
        }
        //判断主对角线
        if (arr[row][row] == 0)
        {
            printf("NO\n");
            return 0;
        }

    }

    if (count == n * (n - 1) / 2)
    {
        printf("NO\n");
    }
    else
    {
        printf("YES\n");
    }
    return 0;
}


